#ifndef __ELF_PARSER_H__
#define __ELF_PARSER_H__

#include <elf.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <assert.h>
#include <stdlib.h>

#include "common.h"
#include "debug.h"

#define BUF_LEN 256

/* ELF 文件的函数信息 */
typedef struct __FuncInfo__ {
	char name[BUF_LEN];	// 函数名称
	size_t addr;		// 函数起始地址
	size_t size;		// 函数范围
	int level;			// 函数的层次: am app / navy app
} FuncInfo;


enum LevelType { LevelLow, LevelHigh };

void parse_elf(FILE* elf_fd, int level, size_t base);
void print_func_table();
FuncInfo* get_func(word_t addr);

#endif